//
//  main.m
//  aula1-2
//
//  Created by Unisinos Universidade on 18/07/12.
//  Copyright (c) 2012 Universidade do Vale do Rio dos Sinos. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Pessoa : NSObject {
    NSString *_nome;
    NSInteger _idade;
    NSNumber *_altura;
}

-(void) setNome:(NSString*)nome;
+(NSString*) criaNome;
-(void) setIdade:(NSInteger)idade;
-(void) setAltura:(NSNumber*) altura;
-(void) setNome:(NSString *)nome And: (NSInteger)idade;
-(NSString*) criarApresentacao;
@end


@implementation Pessoa

-(void) setNome:(NSString *)nome{
    _nome = nome;
}
-(void) setNome:(NSString *)nome And: (NSInteger)idade{
    _nome = nome;
    _idade = idade;
}
-(void) setIdade:(NSInteger)idade{
    _idade = idade;
}
-(void) setAltura:(NSNumber *)altura{
    _altura = altura;
}
+(NSString*) criaNome{
    return @"Teste testando";
}

-(NSString*) criarApresentacao{
    NSString* apresentacao = [[NSString alloc] initWithFormat:@"Meu nome é %@, tenho %i anos e %@ de altura.", _nome, _idade, _altura];
    return apresentacao;
}

@end

@interface Funcionario : Pessoa {
    NSString *_setor;
    NSString *_matricula;    
}

-(void) setSetor: (NSString *)setor;
-(void) setMatricula: (NSString *)matricula;
-(NSString*) criarApresentacao;

@end

@implementation Funcionario

-(void) setSetor:(NSString *)setor{
    _setor = setor;
}

-(void) setMatricula:(NSString *)matricula{
    _matricula = matricula;
}

-(NSString*) criarApresentacao
{
    NSString* apresentacao = [[NSString alloc] initWithFormat:@"%@ Também sou funcionario do setor %@ e minha matricula é %@", [super criarApresentacao], _setor, _matricula];
    return apresentacao;
}
@end

int main (int argc, const char * argv[])
{

    @autoreleasepool {
        
        // insert code here...
        NSLog(@"Hello, World!");
        Pessoa *pessoa = [[Pessoa alloc]init];
//        [pessoa setNome:@"pessoa loca"];
//        [pessoa setIdade:20];
        [pessoa setNome:@"pessoa muito loca" And:20];
        [pessoa setAltura:[[NSNumber alloc]initWithFloat:82.3]];
        NSLog(@"%@", [pessoa criarApresentacao]);
        NSLog(@"%@", [Pessoa criaNome]);
        
        Funcionario *func = [[Funcionario alloc]init];
        [func setNome:@"pessoa muito loca é um funcionario" And:39];
        [func setAltura:[[NSNumber alloc]initWithFloat:90.2]];
        [func setSetor:@"Produção"];
        [func setMatricula:@"897345897345934"];
        NSLog(@"%@", [func criarApresentacao]);
        
    }
    return 0;
}

